package com.xdcplus.web.service.bd;

import com.xdcplus.mp.service.BaseService;
import com.xdcplus.pager.vo.PageVO;
import com.xdcplus.web.common.pojo.dto.bd.BdClassGroupDTO;
import com.xdcplus.web.common.pojo.dto.bd.BdClassGroupFilterDTO;
import com.xdcplus.web.common.pojo.entity.bd.BdClassGroup;
import com.xdcplus.web.common.pojo.vo.bd.BdClassGroupVO;

import java.util.List;


/**
 * 班组表(BdClassGroup)表服务接口层
 *
 * @author Fish.Fei
 * @since 2023-01-31 16:57:35
 */
public interface BdClassGroupService extends BaseService<BdClassGroup, BdClassGroup, BdClassGroupVO> {

    /**
     * 添加班组表(BdClassGroup)
     *
     * @param bdClassGroupDTO 班组表(BdClassGroupDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveBdClassGroup(BdClassGroupDTO bdClassGroupDTO);

    /**
     * 修改班组表(BdClassGroup)
     *
     * @param bdClassGroupDTO 班组表(BdClassGroupDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean updateBdClassGroup(BdClassGroupDTO bdClassGroupDTO);

    /**
     * 批量保存或更新班组表(BdClassGroup)
     *
     * @param bdClassGroupList 班组表(BdClassGroupList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatch(List<BdClassGroup> bdClassGroupList);

    /**
     * 批量保存或更新班组表(BdClassGroupDTOList)
     *
     * @param bdClassGroupDTOList 班组表(BdClassGroupDTOList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatchByDTOList(List<BdClassGroupDTO> bdClassGroupDTOList);

    /**
     * 删除班组表(BdClassGroup)
     *
     * @param id 班组表(BdClassGroup)主键
     * @return {@link Boolean} 是否成功
     */
    Boolean deleteBdClassGroupLogical(Long id);
    
    Boolean deleteBdClassGroupByIds(String ids);

    /**
     * 查询班组表(BdClassGroup)
     *
     * @param bdClassGroupFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<BdClassGroupVO>} 状态信息
     */
    List<BdClassGroupVO> queryBdClassGroupVOList(BdClassGroupFilterDTO bdClassGroupFilterDTO);

    /**
     * 查询班组表(BdClassGroup)
     *
     * @param bdClassGroupFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<BdClassGroupVO>} 状态信息
     */
    PageVO<BdClassGroupVO> queryBdClassGroup(BdClassGroupFilterDTO bdClassGroupFilterDTO);

    /**
     * 查询一个
     *
     * @param id 班组表(BdClassGroup)主键
     * @return {@link BdClassGroupVO} 班组表(BdClassGroup)信息
     */
    BdClassGroupVO queryBdClassGroupById(Long id);
}
